#ifndef NODE_H
#define NODE_H

#include <QMap>
#include <QList>
#include <QString>
#include<QDebug>
#include <QFile>
#include <QtGlobal>
#include <QTime>

class Node;
typedef struct QList<Node*> Nodes;

class Node
{
public:
    Node(QString name);
    bool addNode(Node* node);
    //Nodes* getNodes();
    void showNodes();
    Node* getRandomNode();
    bool save(QFile *file);
    bool load(QFile *file);
    Node* getNode(qint32 index);

    void test();

    friend bool operator==(const Node &first, const Node &second)
    {
        qDebug("Comaparnado ==");
        return first.getKey().compare(second.getKey()) == 0;
    }

    qint32 getCountWords() { return this->list->size(); }
    QString getName() const { return this->key; }
    QString getKey() const { return this->key; }

protected:
    Node* searchNode(Node* node);

private:
    Nodes* list;
    QString key;    
};

#endif // NODE_H
